<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // // 装饰者函数
        // function dec (klass) {
        //     return class extends klass {
        //         name = this.name + 1;
        //     }
        // }


        // // 被装饰者
        // class A {
        //     name = 'zhangsan';
        // }

        // // 声明一个新变量：被装饰过后的A
        // const NewClass = dec(A);

        // // 使用新的变量
        // const person = new NewClass();

        // console.log(person.name); // zhangsan1

        function dec (klass) {
            return class extends klass {
                name = this.name + 1;
            }
        }

        @dec
        class A {
            name = 'zhangsan';
        }


        // 使用新的变量
        const person = new A();

        console.log(person.name); // zhangsan1

    </script>
</body>
</html>